package com.linwen.excise.huaweiOJ;

import java.util.Scanner;

/**
 * @ClassName _104五键盘
 * @Description
 * @Author lin
 * @Date 2022/2/20 下午2:38
 * @Version V1.0
 */

/*
    有一个特殊的五键键盘
    上面有A、Ctrl-C、Ctrl-X、Ctrl-V、Ctrl-A
    A键在屏幕上输出一个字母A
    Ctrl-C将当前所选的字母复制到剪贴板
    Ctrl-X将当前选择的字母复制到剪贴板并清空所选择的字母
    Ctrl-V将当前剪贴板的字母输出到屏幕
    Ctrl-A选择当前屏幕中所有字母
    注意：
      1. 剪贴板初始为空
      2. 新的内容复制到剪贴板会覆盖原有内容
      3. 当屏幕中没有字母时,Ctrl-A无效
      4. 当没有选择字母时Ctrl-C、Ctrl-X无效
      5. 当有字母被选择时A和Ctrl-V这两个输出功能的键,
         会先清空所选的字母再进行输出

    给定一系列键盘输入,
    输出最终屏幕上字母的数量

    输入描述:
       输入为一行
       为简化解析用数字12345分别代替A、Ctrl-C、Ctrl-X、Ctrl-V、Ctrl-A的输入
       数字用空格分割

    输出描述:
        输出一个数字为屏幕上字母的总数量

    示例一:
        输入:
          1 1 1
        输出:
          3

   示例二:
        输入:
          1 1 5 1 5 2 4 4
        输出:
          2

   */
public class _104五键盘 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        scanner.close();
        String[] arr = str.split(" ");

        // 定义一个剪贴板
        String builder = "";
        // 定义一个屏幕
        String result = "";
        // 定义选中的字母
        String choose = "";

        for (String op:arr) {
            switch (op){
                case "1":{// 屏幕输出A
                    if(choose.length()>0){
                        result = "";
                    }
                    result += "A";
                };break;
                case "2":{// 将选中的字符复制到剪切板
                    if(choose.length()>0){
                        builder = choose;
                    }
                };break;
                case "3":{// 将选中的字符复制到剪切板并清空选中的字符
                    if(choose.length()>0){
                        builder = choose;
                    }
                    choose = "";
                };break;
                case "4":{// 将剪切板中的字符复制到屏幕
                    if(choose.length()>0){// 有选中
                        result = builder;
                        choose = "";
                    } else{
                        result += builder;
                    }
                };break;
                case "5":{// 选中当前屏幕所有的字符
                    choose = result;
                };break;
                default:{

                };break;
            }
        }
        System.out.println(result);
        System.out.println(result.length());
    }
}
